package com.easyweb.entity;

import static javax.persistence.GenerationType.IDENTITY;

import java.io.Serializable;
import java.util.Date;

import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

import org.hibernate.annotations.NamedQueries;
import org.hibernate.annotations.NamedQuery;
import org.hibernate.validator.NotNull;

import com.vladium.jcd.opcodes.IOpcodes.clinit;

@Entity
@NamedQueries({@NamedQuery(name="kullaniciIsTecrubeleriKullaniciyaGore",query="select k from KullaniciIsTecrubeleri k order by k.id" )
})
@Table
public class KullaniciIsTecrubeleri implements Serializable{
	 
	private static final long serialVersionUID = 1L;
	@Id
	@GeneratedValue(strategy = IDENTITY)
	@Column(name = "id", unique = true, nullable = false)
	private Long id;
	
	@ManyToOne(cascade=CascadeType.ALL,fetch=FetchType.LAZY)
	private Kullanici kullanici;
	
	@Column(nullable=false)
	@NotNull(message="#{messages.errBosOlamaz}")
	private String firmaAdi;
	
	@Temporal(TemporalType.TIMESTAMP)
	@Column(length=16)
	private Date iseBaslamaTarihi;

	@Temporal(TemporalType.TIMESTAMP)
	@Column(length=16)
	private Date istenAyrilmaTarihi;
	
 
	@ManyToOne(cascade=CascadeType.ALL,fetch=FetchType.LAZY)
	private Sektor sektor;
	
 
	@ManyToOne(cascade=CascadeType.ALL,fetch=FetchType.LAZY)
	private Bolum bolum;
	
 
	@ManyToOne(cascade=CascadeType.ALL,fetch=FetchType.LAZY)
	private PozisyonBilgileri pozisyonBilgileri;
	
   
    @ManyToOne(cascade=CascadeType.ALL,fetch=FetchType.LAZY)
	private Iller iller;

 
    @ManyToOne(cascade=CascadeType.ALL,fetch=FetchType.LAZY)
    private AyrilmaKodlari ayrilmaNedeni;
    
    public KullaniciIsTecrubeleri() {
 
	}

    
	public KullaniciIsTecrubeleri(Long id, Kullanici kullanici,
			String firmaAdi, Date iseBaslamaTarihi, Date istenAyrilmaTarihi,
			Sektor sektor, Bolum bolum, PozisyonBilgileri pozisyonBilgileri,
			Iller iller, AyrilmaKodlari ayrilmaNedeni) {
		super();
		this.id = id;
		this.kullanici = kullanici;
		this.firmaAdi = firmaAdi;
		this.iseBaslamaTarihi = iseBaslamaTarihi;
		this.istenAyrilmaTarihi = istenAyrilmaTarihi;
		this.sektor = sektor;
		this.bolum = bolum;
		this.pozisyonBilgileri = pozisyonBilgileri;
		this.iller = iller;
		this.ayrilmaNedeni = ayrilmaNedeni;
	}


	public Long getId() {
		return id;
	}

	public Kullanici getKullanici() {
		return kullanici;
	}

	public String getFirmaAdi() {
		return firmaAdi;
	}

	public Date getIseBaslamaTarihi() {
		return iseBaslamaTarihi;
	}

	public Date getIstenAyrilmaTarihi() {
		return istenAyrilmaTarihi;
	}

	public Sektor getSektor() {
		return sektor;
	}

	public Bolum getBolum() {
		return bolum;
	}

	public PozisyonBilgileri getPozisyonBilgileri() {
		return pozisyonBilgileri;
	}

	public Iller getIller() {
		return iller;
	}

	public AyrilmaKodlari getAyrılmaNedeni() {
		return ayrilmaNedeni;
	}

	public void setId(Long id) {
		this.id = id;
	}

	public void setKullanici(Kullanici kullanici) {
		this.kullanici = kullanici;
	}

	public void setFirmaAdi(String firmaAdi) {
		this.firmaAdi = firmaAdi;
	}

	public void setIseBaslamaTarihi(Date iseBaslamaTarihi) {
		this.iseBaslamaTarihi = iseBaslamaTarihi;
	}

	public void setIstenAyrilmaTarihi(Date istenAyrilmaTarihi) {
		this.istenAyrilmaTarihi = istenAyrilmaTarihi;
	}

	public void setSektor(Sektor sektor) {
		this.sektor = sektor;
	}

	public void setBolum(Bolum bolum) {
		this.bolum = bolum;
	}

	public void setPozisyonBilgileri(PozisyonBilgileri pozisyonBilgileri) {
		this.pozisyonBilgileri = pozisyonBilgileri;
	}

	public void setIller(Iller iller) {
		this.iller = iller;
	}

	public void setAyrılmaNedeni(AyrilmaKodlari ayrılmaNedeni) {
		this.ayrilmaNedeni = ayrılmaNedeni;
	}
    
}
